/**
 *
 * @author Cesar Mamani Lipa
 * @date   01/04/2010
 */

package pe.gob.pnp.despachadores;

import java.sql.*;
import java.util.*;
import oracle.jdbc.*;
import pe.gob.pnp.actions.*;
import pe.gob.pnp.factories.*;

public class TipoPersonalPolicialDespachador {

     public static List<TipoPersonalPolicial> obtenerTipoPersonalPolicial() throws SQLException {
        List<TipoPersonalPolicial> lstTipoPersonalPolicial = new ArrayList<TipoPersonalPolicial>();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_OBTENER_TIPOPERSONALPOL(?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.registerOutParameter(1, OracleTypes.CURSOR);
            cs.execute();
            ResultSet rs = (ResultSet) cs.getObject(1);
            while (rs.next()) {
                TipoPersonalPolicial tipoPersonalPolicial = new TipoPersonalPolicial();
                tipoPersonalPolicial.setNtippIdentificador(rs.getInt("NTIPP_IDENTIFICADOR"));
                tipoPersonalPolicial.setCtippDescripcion(rs.getString("CTIPP_DESCRIPCION"));
                tipoPersonalPolicial.setDtippFechacreacion(rs.getDate("DTIPP_FECHACREACION"));
                lstTipoPersonalPolicial.add(tipoPersonalPolicial);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstTipoPersonalPolicial;
    }

    public static void agregarTipoPersonalPolicial(TipoPersonalPolicial tipoPersonalPolicial) throws SQLException {
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_AGREGAR_TIPOPERSONALPOL(?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.setString(1, tipoPersonalPolicial.getCtippDescripcion());
            cs.execute();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
    }

    public static void modificarTipoPersonalPolicial(TipoPersonalPolicial tipoPersonalPolicial) throws SQLException {
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_MODIFICAR_TIPOPERSONALPOL(?,?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.setString(1, tipoPersonalPolicial.getCtippDescripcion());
            cs.setInt(2, tipoPersonalPolicial.getNtippIdentificador());
            cs.execute();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
    }

    public static void eliminarTipoPersonalPolicial(int ntippIdentificador) throws SQLException {
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_ELIMINAR_TIPOPERSONALPOL(?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.setInt(1, ntippIdentificador);
            cs.execute();

        } finally {
            ConnectionPool.liberarConexion(conn);
        }
    }
}
